package br.com.conhecimento.ejb.service;

import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;

import br.com.conhecimento.ejb.client.IEjbConhecimentoSessionFacade;

public class ConhecimentoService {

	private static IEjbConhecimentoSessionFacade ejbConhecimento;
	
	private ConhecimentoService() {}
	
	public static IEjbConhecimentoSessionFacade getInstance() {
		if(ejbConhecimento != null) {
			return ejbConhecimento;
		}
		
		Properties properties = new Properties();  
        properties.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");  
        properties.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");  
        properties.put("java.naming.provider.url", "jnp://127.0.0.1:1099");  

        Object finderRef = null;
		try {
	        Context context = new InitialContext(properties);  
	        finderRef = context.lookup("EjbConhecimento/remote");  
		} catch (NamingException e) {
			e.printStackTrace();
			return null;
		}  
        
		ejbConhecimento = (IEjbConhecimentoSessionFacade) PortableRemoteObject  
                .narrow(finderRef, IEjbConhecimentoSessionFacade.class);
        
        return ejbConhecimento;
	}
	
}
